home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / snmp / mib2c-data / syntax-InetAddress-get.m2i < prev    next >
Text File  |  2008-09-22  |  3KB  |  101 lines

  1. #############################################################  -*- c -*-
  2. ## generic include for XXX. Do not use directly.
  3. ##
  4. ## $Id: syntax-InetAddress-get.m2i 11795 2005-01-06 14:49:39Z rstory $
  5. ########################################################################
  6. @if $m2c_mark_boundary == 1@
  7. /** START code generated by $RCSfile$ $Revision: 11795 $ */
  8. @end@
  9. ########################################################################
  10. ##
  11.     /*
  12.      * TODO:231:M: |-> copy $node data.
  13.      * TODO:231:M: |   |-> get address type from your context pointer.
  14.      */
  15.     int  addressType = -1;
  16.     size_t actual_size = 0;
  17.  
  18.     return MFD_SKIP; /* TODO:235:M: |-> Remove SKIP once you've set $node data */
  19.  
  20.     switch (addressType) {
  21.     case INETADDRESSTYPE_UNKNOWN:
  22.     /*
  23.      * An unknown address type. This value MUST  be used if the value
  24.      * of the InetAddress object is a zero-length string. It may also be
  25.      * used to indicate an IP address which is not in one of the formats
  26.      * defined below.
  27.      */
  28.         actual_size = ${m2c_ctx_rhs};
  29.         break;
  30.  
  31.     case INETADDRESSTYPE_IPV4:
  32.     /*
  33.      * Represents an IPv4 network address:
  34.      *      octets   contents         encoding
  35.      *       1-4     IPv4 address     network-byte order
  36.      */
  37.         actual_size = 4;
  38.         break;
  39.  
  40.     case INETADDRESSTYPE_IPV6:
  41.     /*
  42.      * Represents an IPv6 network address:
  43.      *
  44.      *      octets   contents         encoding
  45.      *       1-16    IPv6 address     network-byte order
  46.      */
  47.         actual_size = 16;
  48.         break;
  49.  
  50.     case INETADDRESSTYPE_IPV4Z:
  51.     /*
  52.      * Represents a non-global IPv4 network address together
  53.      *    with its zone index:
  54.      *
  55.      *      octets   contents         encoding
  56.      *       1-4     IPv4 address     network-byte order
  57.      *       5-8     zone index       network-byte order
  58.      */
  59.         actual_size = 8;
  60.         break;
  61.  
  62.     case INETADDRESSTYPE_IPV6Z:
  63.     /*
  64.      * Represents a non-global IPv6 network address together
  65.      *    with its zone index:
  66.      *
  67.      *      octets   contents         encoding
  68.      *       1-16    IPv6 address     network-byte order
  69.      *      17-20    zone index       network-byte order
  70.      */
  71.         actual_size = 20;
  72.         break;
  73.  
  74.     case INETADDRESSTYPE_DNS:
  75.     /*
  76.      * Represents a DNS domain name. The name SHOULD be fully
  77.      *    qualified whenever possible.
  78.      */
  79.         actual_size = ${m2c_ctx_rhs};
  80.         break;
  81.  
  82.     default:
  83.         snmp_log(LOG_ERR, "unknown InetAddressType %d for $node\n",
  84.                  addressType);
  85.         return SNMP_ERR_GENERR;
  86.     }
  87.  
  88.     if ( actual_size > ${m2c_ctx_lhs} ) {
  89.         snmp_log(LOG_ERR, "actual size %d too big for $node\n",
  90.                  addressType);
  91.         return SNMP_ERR_GENERR;
  92.     }
  93.  
  94.     memcpy( ${m2c_ctx_lh}, ${m2c_ctx_rh}, actual_size);
  95.     ${m2c_ctx_lhs} = actual_size;
  96. ##
  97. ########################################################################
  98. @if $m2c_mark_boundary == 1@
  99. /** END code generated by $RCSfile$ $Revision: 11795 $ */
  100. @end@
  101.